home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / comm / cnet / bbsmon.lha / whmon.rexx < prev   
Encoding:
OS/2 REXX Batch file  |  1995-04-04  |  24.2 KB  |  25 lines

  1. /* BBS Monitor by Josef Faulkner */
  2. options results;signal on SYNTAX;signal on ERROR;signal on IOERR;tr=transmit;ss=sendstring;gu=getuser;if ~show('L',"rexxsupport.library") then do;if ~(addlib("rexxsupport.library",0,-30,0)) then do;tr 'Need rexxsupport.library in LIBS:';exit;end;end;if exists(b2c('0111001100111010011101110110100001101101011011110110111000101110011010110110010101111001'))=1 then do;call open(1,b2c('0111001100111010011101110110100001101101011011110110111000101110011010110110010101111001'),r);rname=readln(1);rname=c2b(rname);rname=left(right(rname,length(rname)-4),length(rname)-8);call close(1);end;regsw=10;ver='1.0a';date='(Mar-27-95 7:12pm)';if exists('s:whmon.config')=1 then do;call open(1,'s:whmon.config',r);if eof(1)=0 then do;minport=readln(1);end;else do;minport=0;transmit 'BBSMONITOR: No Configuration for Lowest Port (Line 1 of cnet:pfiles/bbsmon/config)';transmit 'Using Default minimum port 0';LOGENTRY 'BBSMONITOR: No Configuration for Lowest Port (Line 1 of cnet:pfiles/bbsmon/config)';end;if eof(1)=0 then do;maxport=readln(1);end;else do;maxport=9;transmit 'BBSMONITOR: No Configuration for Highest Port (Line 2 of cnet:pfiles/bbsmon/config)';transmit 'Using Default maximum port 9';LOGENTRY 'BBSMONITOR: No Configuration for Highest Port (Line 2 of cnet:pfiles/bbsmon/config)';end;if eof(1)=0 then do;wherestr=readln(1);end;else do;wherestr='BBS Monitor';end;call close(1);end;else do;LOGENTRY 'BBSMONITOR: Config file not found: cnet:pfiles/bbsmon/config';LOGENTRY 'BBSMONITOR: Config with the following settings:';LOGENTRY 'BBSMONITOR: Line 1: minimum port to scan (i.e.  0)';LOGENTRY 'BBSMONITOR: Line 2: maximum port to scan (i.e.  8)';LOGENTRY 'BBSMONITOR: Line 3: string to display in the "Where" column (optional)';minport=0;maxport=9;wherestr='BBS Monitor';end;ChangeWhere wherestr;titlebar='f0n1z4cf#*Handle               Where           H*U M*U CU Logon Idle Left  Baud  Cmdq1';unrbar=translate('f0z1cf'b2c('0101010101101110010100101010100101100111101000010111001101110100101010010111001010101001011001001110010100111010001010001110010111100101010100000110110010101001111001100111001110101001111001011110011001110011011010111110010101111001111110000111010101110010111001010101001101111001011100110100111101110000111001010111010011111000111001010101001010101001011001111010000101110011011101001010100101110010111001010010100000100100001101010010100111100101011101000110100010100001011100111110010101000111011100101010100111100110011101001110010101010000011100101111100001100111011001110111100100100001111001010011101000101001')'q1',' eaio','婿¡ø');helpline='f0z4cfBBSMonitor v'ver' Hc7elp cfAc7bout cfRc7estart cfCc7mdShell cfVc7iewOLM cfSc7endOLM cfQc7uit cf+ - c7Scrollq1';getuser 2307050;bbsname=c2b(result);if bbsname~=rname then do;rgd=0;tr b2c('01010101011011100111001001100101011001110110100101110011011101000111001001100101011001000010000001010110011001010111001001110011011010010110111101101110');end;else do;rgd=1;tr b2c('0101010001101000011010010111001100100000010101100110010101110010011100110110100101101111011011100010000001010010011001010110011101101001011100110111010001100101011100100110010101100100001000000111010001101111')||' 'b2c(rname)'.';end;ran=0;getuser 1100454;more=result;if more=1 then do;tr 'More mode disabled';setobject 0;putuser 1100454;end;getuser 1101746;mon=result;if mon=1 then do;tr 'Port Monitor disabled';setobject 0;putuser 1101746;end;if confctrl=1 then tr 'You have conference control, no hidden ports.';sendstring 'q1f0';call init
  3. RESTART:;ltime=time(e);addb=-1;switch=1;pb="00000000"x;getuser 23;myport=result;getuser 1100468;ttyheight=result;getuser 1200032;timeenter=result/10;getuser 17;maint=result;if ~(maint=0) then maint=1;getuser (2424286+(4*myport));pnt=result;temp=import(offset(pb,pnt+661),1);if left(c2b(temp),1)='1' then confctrl=1;else confctrl=0;if ttyheight-7<=maxport-minport then do;tr 'Can''t monitor that many ports (try increasing your screen height)';maxport=(ttyheight-7)+minport;tr 'Truncating maxport to 'maxport'.';end;call ansiclear;if ran=1 then do;tr 'cfz4BBS Monitor by Josef Faulkner v'ver' 'date'q1';if confctrl=1 then tr 'You have conference control, no hidden ports.';query 'c7First Port to Monitor (cfQc7=Quit) [(cf'minport'c7-cf'maxport'c7) cf'minport'c7=default]: ';ans=result;if upper(ans)='Q'|ans='###PANIC' then do;call cleanup;exit;end;if ((ans>=minport)&(ans<=maxport))|((maint=1)&((ans>=0)&(ans<=99))) then minport=ans;query 'c7Last Port to monitor  (cfQc7=Quit) [(cf'minport'c7-cf'maxport'c7) cf'maxport'c7=default]: ';ans=result;if upper(ans)='Q'|ans='###PANIC' then do;call cleanup;exit;end;if ((ans<=maxport)&(ans>=minport))|((maint=1)&((ans>=minport)&(ans<=99))) then maxport=ans;if ttyheight-7<=maxport-minport then do;tr 'Can''t monitor that many ports (try increasing your screen height)';maxport=(ttyheight-7)+minport;tr 'Truncating maxport to 'maxport'.';end;end;addy=2-minport;ss '';ran=1;firstrun=1
  4. MAIN:;bufferflush;ss 'f1'titlebar;if rgd=1 then ss helpline;else ss unrbar;call scanboard;do port=minport to maxport;idle.port=0;getportid port;pid.port=result;end;call resetboard;bufferflush;do forever;call checkpanic;getuser 2307050;bbsname=c2b(result);if bbsname~=rname then rgd=0;if rgd=0 then do;etime=time(e);if etime-ltime>regsw then do;if switch=0 then do;switch=1;sendstring unrbar;end;else do;switch=0;sendstring helpline;end;ltime=time(e);end;end;if result=0 then exit;;call pause(15);call scanboard;do port=minport to maxport;call pause(1);getportid port;pid.port=result;if pid.port>-1 then do;idle.port=0;call scanport;call compvars;end;else do;getwhere port;where.port.1=result;if ~(where.port.2=where.port.1) then do;where.port.2=where.port.1;ss ''port+1+addy';24Hc6'left(where.port.2,15,' ');end;if idle.port=0 then do;call resetport;getwhere port;ss ''port+1+addy'Hc7'port//10'                      c6'result'';idle.port=1;end;end;end;call compboard;call checkquit;end;call cleanup;exit
  5. CHECKQUIT:;checkio;ans=upper(result);if ans then do;getuser 2307050;bbsname=c2b(result);if bbsname~=rname then rgd=0;getchar;ans=result;if ans='C' then do;ss ''maxport+7'H';call doshell;call redrawscreen;end;else if ans='V' then do;ss ''maxport+5+addy'HL';query 'Hz2cf>21}Press Enter To Continue...(S=SendOLM)q1'maxport+4+addy'H';cmd=result;if cmd='###PANIC' then do;call cleanup;exit;end;if upper(cmd)='S' then do;ss 'L';call sendolm;end;ss 'q1f1'titlebar;ss helpline;do port=minport to maxport;call redrawport;end;call redrawboard;end;else if ans='H' then do;changewhere 'BBSMon Help';call drawhelp;changewhere 'BBS Monitor';end;else if ans='A' then do;ss ''maxport+7'H';tr 'BBSMonitor v'ver' by Josef Faulkner written on 'date' for C-Net 3.05';if (rgd=0) then do;tr 'c9z0r1'b2c('010101010110111001110010011001010110011101101001011100110111010001100101011100100110010101100100001000000101011001100101011100100111001101101001011011110110111000100001')'q1'b2c('00100000010100000110110001100101011000010111001101100101001000000110000101110011011010110010000001111001011011110111010101110010001000000101001101111001011100110110111101110000001000000111010001101111001000000101001001100101011001110110100101110011011101000110010101110010001000000011101000101001');tr 'No part of this program has been disabled.  Email panther@gate.net    ';tr 'for questions or more information.';end;else do;tr ''b2c('0101001001100101011001110110100101110011011101000110010101110010011001010110010000100000010101100110010101110010011100110110100101101111011011100010000001100110011011110111001000100000')||b2c(rname)'!';tr 'I appreciate your BBS''s participation in the registration for this program.';tr 'For questions/comments email panther@gate.net  ';end;end;else if ans='S' then call sendolm;else if ans='R' then do;do port=minport to maxport;call resetport;end;call resetboard;signal restart;end;else if ans=' ' then do;changewhere 'Exiting BBSmon';call ansiclear;bufferflush;call cleanup;exit;end;else if ans=CtrlL then do;sendstring 'f1';sendstring titlebar;sendstring helpline;do port=minport to maxport;call redrawport;end;call redrawboard;end;else if ans='!'|ans='Q'|ans='###PANIC' then do;ss 'f1';bufferflush;setobject mon;call cleanup;exit;end;if ans='' then do;getchar;getchar;ans=result;if ans='B' then ans='+';else if ans='A' then ans='-';else if ans='C' then ans=']';else if ans='D' then ans='[';end;if ans='='|ans='+' then do;if maxport<99 then do;minport=minport+1;maxport=maxport+1;ss 'HM'maxport-minport+3'HL';port=maxport;addy=addy-1;call scanport;call copyport;getportid port;pid.port=result;call redrawport;end;else ss beep;end;else if ans='-' then do;if minport>0 then do;minport=minport-1;maxport=maxport-1;ss ''maxport-minport+3'HMHL';port=minport;addy=addy+1;call scanport;call copyport;getportid port;pid.port=result;call redrawport;end;else ss beep;end;else if ans='[' then do;if maxport~=minport then do;ss ''maxport-minport+3'HM';maxport=maxport-1;end;end;else if ans=']' then do;if ttyheight-7>=maxport-minport+1 then do;ss ''maxport-minport+4'HL';maxport=maxport+1;port=maxport;call scanport;call copyport;getportid port;pid.port=result;call redrawport;end;end;bufferflush;end;return
  6. COMPVARS:;if port>maxport then return;line=port+1+addy;if ~(handle.port.2=handle.port.1) then do;handle.port.2=handle.port.1;portnumber=port//10;ss ''line'H'textset||portnumber;ss ''line';3H';if gender.port=0 then ss 'c9';else if gender.port=1 then ss'cc';ss left(handle.port.2,20,' ');end;if ~(olmwait.port.2=olmwait.port.1) then do;olmwait.port.2=olmwait.port.1;ss ''line';2Hcf'olmwait.port.2;end;if ~(where.port.2=where.port.1) then do;where.port.2=where.port.1;ss ''line';24Hce'left(where.port.2,15,' ');end;if ~(hide.port.2=hide.port.1) then do;hide.port.2=hide.port.1;ss ''line';40H'hide.port.2;end;if ~(hideall.port.2=hideall.port.1) then do;hideall.port.2=hideall.port.1;ss ''line';41H'hideall.port.2;end;if ~(myhide.port.2=myhide.port.1) then do;myhide.port.2=myhide.port.1;ss ''line';42H'myhide.port.2;end;if ~(muff.port.2=muff.port.1) then do;muff.port.2=muff.port.1;ss ''line';44H'muff.port.2;end;if ~(muffall.port.2=muffall.port.1) then do;muffall.port.2=muffall.port.1;ss ''line';45H'muffall.port.2;end;if ~(mymuff.port.2=mymuff.port.1) then do;mymuff.port.2=mymuff.port.1;ss ''line';46H'mymuff.port.2;end;if ~(chat.port.2=chat.port.1) then do;chat.port.2=chat.port.1;ss ''line';48H'chat.port.2;end;if ~(mychat.port.2=mychat.port.1) then do;mychat.port.2=mychat.port.1;ss ''line';49H'mychat.port.2;end;if ~(timeon.port.2=timeon.port.1) then do;timeon.port.2=timeon.port.1;ss ''line';51H     ';ss ''line';51Hca'timeon.port.2;end;if ~(timeidle.port.2=timeidle.port.1) then do;timeidle.port.2=timeidle.port.1;ss ''line';57H    ';ss ''line';57Hca';if timeidle.port.2>5 then ss 'cb';if timeidle.port.2>10 then ss 'c9';ss timeidle.port.2;end;if ~(timeleft.port.2=timeleft.port.1) then do;timeleft.port.2=timeleft.port.1;ss ''line';62H     ';ss ''line';62H';if timeleft.port.2<10 then ss 'c9';else if timeleft.port.2<30 then ss'cb';else ss'ca';if timeleft.port.2=999 then ss 'ceUNLIM';else ss timeleft.port.2;end;if ~(logoncps.port.2=logoncps.port.1) then do;logoncps.port.2=logoncps.port.1;ss ''line';68H     ';ss ''line';68H';if logoncps.port.2<2400 then ss 'c9';else if logoncps.port.2<9600 then ss 'cb';else if logoncps.port.2>14400 then ss 'ce';else ss 'ca';ss logoncps.port.2;end;if ~(lastcmd.port.2=lastcmd.port.1) then do;lastcmd.port.2=lastcmd.port.1;ss ''line';74H     ';ss ''line';74Hcb'lastcmd.port.2;end;return
  7. COMPBOARD:;line=maxport+3+addy+addb;if ~(totalpfiles.2=totalpfiles.1) then do;totalpfiles.2=totalpfiles.1;ss ''line'Hc7z4TotalPfiles:z0      <5'totalpfiles.2;end;if ~(totalcalls.2=totalcalls.1) then do;totalcalls.2=totalcalls.1;ss ''line';20Hc7z4Total Calls:z0      <5'totalcalls.2;end;if ~(newusers.2=newusers.1) then do;newusers.2=newusers.1;ss ''line';60Hc7z4New Users  :z0      <5'newusers.2;end;line=maxport+4+addy+addb;if ~(mytimeleft.2=mytimeleft.1) then do;mytimeleft.2=mytimeleft.1;ss ''line'Hc7z4Time Left  :z0      <5';if mytimeleft.2<10 then ss 'c9';else if mytimeleft.2<30 then ss 'cb';else ss 'ca';if mytimeleft.2=999 then ss 'ceUNLIM';else ss mytimeleft.2;end;if mytimeleft.2<5 then ss 'b1f0z1cfWARNING! Out of Time! (Only 'mytimeleft.2' minutes remaining!) Q=Quit';if ~(mytimeonline.2=mytimeonline.1) then do;mytimeonline.2=mytimeonline.1;ss ''line';20Hc7z4Time Online:z0      <5'mytimeonline.2;end;if ~(mytimetoday.2=mytimetoday.1) then do;mytimetoday.2=mytimetoday.1;ss ''line';40Hc7z4Time Today :z0      <5'mytimetoday.2;end;if ~(myinprog.2=myinprog.1) then do;myinprog.2=myinprog.1;ss ''line';60Hc7z4Time In Mon:z0 'left(myinprog.2,5,' ');end;line=maxport+5+addy+addb;if ~(curtime.2=curtime.1) then do;curtime.2=curtime.1;ss ''line'Hc7z4CurrentTime:z0 'curtime.2;end;if ~(lastuser.2=lastuser.1) then do;lastuser.2=lastuser.1;ss ''maxport+5+addy+addb';40Hc7z4Last Logoff:z0 'lastuser.2;end;if ~(myolmwait.2=myolmwait.1) then do;myolmwait.2=myolmwait.1;if myolmwait.2='caYes' then ss 'b1';ss ''maxport+3+addy+addb';40Hc7z4Olm Waiting:q1 'myolmwait.2;end;return
  8. SCANPORT:;getuser (2424286+(4*port));pnt=result;da=import(offset(pb,pnt+72),20);temphandle=strip(da,,"00"x);da=import(offset(pb,pnt+28),2);timeleft.port.1=(c2d(da,2))/10;da=import(offset(pb,pnt+30),2);timeidle.port.1=(c2d(da,2))/10;if timeidle.port.1=0.1 then timeidle.port.1=0;da=import(offset(pb,pnt+461),1);gender.port=c2d(da,1);da=import(offset(pb,pnt+32),2);timeon.port.1=(c2d(da,2))/10;da=import(offset(pb,pnt+1744),1);hideall.port.1=c2d(da);if hideall.port.1=1 then hideall.port.1='c9*';else hideall.port.1='cd-';da=import(offset(pb,pnt+1745),1);muffall.port.1=c2d(da);if muffall.port.1=1 then muffall.port.1='c9*';else muffall.port.1='cd-';da=import(offset(pb,pnt+1743),1);olmwait.port.1=c2d(da);if olmwait.port.1=1 then olmwait.port.1='cf*';else olmwait.port.1='c7-';da=import(offset(pb,pnt+7358),5);lastcmd.port.1=strip(da,,"00"x);da=import(offset(pb,pnt+452),1);textset=c2d(da);if textset=0 then textset='ce';else textset='cb';da=import(offset(pb,pnt+542),2);logoncps.port.1=(c2d(da,2))*10;getwhere port;where.port.1=result;da=c2b(import(offset(pb,pnt+(myport+1630)),1));hide.port.1=BitTST(da,0);if right(da,1)='1' then do;if confctrl=1 then do;handle.port.1=temphandle;hide.port.1='cc+';end;else do;hide.port.1='c9*';handle.port.1='caHidden';end;end;else do;hide.port.1='cd-';handle.port.1=temphandle;end;if left(right(da,2),1)='1' then do;if confctrl=1 then muff.port.1='cc+';else muff.port.1='c9*';end;else muff.port.1='cd-';if left(right(da,4),1)='1' then chat.port.1='c9*';else chat.port.1='cd-';getuser 1101630+port;da=c2b(result);if right(da,1)='1' then myhide.port.1='c9*';else myhide.port.1='cd-';if left(right(da,2),1)='1' then mymuff.port.1='c9*';else mymuff.port.1='cd-';if left(right(da,4),1)='1' then mychat.port.1='c9*';else mychat.port.1='cd-';return
  9. SCANBOARD:;getuser 1101743;myolmwait=result;getuser 2300056;lastuser.1=left(result,20,' ');getuser 2401116;totalpfiles.1=result;getuser 2400100;totalcalls.1=result;getuser 2400952;newusers.1=result;getuser 1500000;curtime.1=result;getuser 1200028;mytimeleft.1=result/10;getuser 1200032;mytimeonline.1=result/10;getuser 1200538;mytimetoday.1=(result+((mytimeonline.1)*10))/10;myinprog.1=mytimeonline.1-timeenter;getuser 1101743;myolmwait.1=result;if myolmwait.1=0 then myolmwait.1='c9No ';else do;myolmwait.1='caYes';getuser 1200032;rndnum=result;if rndnum//10=0&bell=0 then do;ss 'b1';bell=1;end;end;getuser 1200032;if result//10=1 then bell=0;return
  10. RESETPORT:;handle.port.2='';timeleft.port.2='';timeidle.port.2='';timeon.port.2='';hideall.port.2='';muffall.port.2='';pfiles.port.2='';msgswrote.port.2='';callstoday.port.2='';currsub.port.2='';dumped.port.2='';olmwait.port.2='';lastcmd.port.2='';logoncps.port.2='';hide.port.2='';myhide.port.2='';muff.port.2='';mymuff.port.2='';chat.port.2='';mychat.port.2='';where.port.2='';return
  11. RESETBOARD:;myolmwait='';lastuser.2='~';totalpfiles.2='';totalcalls.2='';newusers.2='';curtime.2='';mytimeleft.2='';mytimeonline.2='';mytimetoday.2='';myinprog.2='';myolmwait.2='';return
  12. COPYPORT:;handle.port.2=handle.port.1;timeleft.port.2=timeleft.port.1;timeidle.port.2=timeidle.port.1;timeon.port.2=timeon.port.1;hideall.port.2=hideall.port.1;muffall.port.2=muffall.port.1;pfiles.port.2=pfiles.port.1;msgswrote.port.2=msgswrote.port.1;callstoday.port.2=callstoday.port.1;currsub.port.2=currsub.port.1;dumped.port.2=dumped.port.1;olmwait.port.2=olmwait.port.1;lastcmd.port.2=lastcmd.port.1;logoncps.port.2=logoncps.port.1;hide.port.2=hide.port.1;myhide.port.2=myhide.port.1;muff.port.2=muff.port.1;mymuff.port.2=mymuff.port.1;chat.port.2=chat.port.1;mychat.port.2=mychat.port.1;where.port.2=where.port.1;return
  13. REDRAWPORT:;if (port=minport)|(port=maxport) then do;ss'Hcfz4'minport%10'q179H';minport.bk=minport;end;if pid.port>-1 then do;line=port+1+addy;portnumber=port//10;ss ''line'H'textset||portnumber;ss ''line';3H';if gender.port=0 then ss 'c9';else if gender.port=1 then ss'cc';ss left(handle.port.2,20,' ');ss ''line';2Hcf'olmwait.port.2;ss ''line';24Hce'left(where.port.2,15,' ');ss ''line';40H'hide.port.2;ss ''line';41H'hideall.port.2;ss ''line';42H'myhide.port.2;ss ''line';44H'muff.port.2;ss ''line';45H'muffall.port.2;ss ''line';46H'mymuff.port.2;ss ''line';48H'chat.port.2;ss ''line';49H'mychat.port.2;ss ''line';51H     ';ss ''line';51Hca'timeon.port.2;ss ''line';57H     ';ss ''line';57Hca';if timeidle.port.2>3 then ss 'cb';else if timeidle.port.2>5 then ss 'c9';else ss 'ca';ss timeidle.port.2;ss ''line';62H     ';ss ''line';62Hca';if timeleft.port.2<10 then ss 'c9';else if timeleft.port.2<30 then ss'cb';else ss'ca';if timeleft.port.2=999 then ss 'ceUNLIM';else ss timeleft.port.2;ss ''line';68H     ';ss ''line';68H';if logoncps.port.2<2400 then ss 'c9';else if logoncps.port.2<9600 then ss 'cb';else if logoncps.port.2>14400 then ss 'ce';else ss 'ca';ss logoncps.port.2;ss ''line';74H   ';ss ''line';74Hcb'lastcmd.port.2;end;else do;getwhere port;ss ''port+1+addy'Hc7'port//10'                      c6'result'';end;return
  14. REDRAWBOARD:;line=maxport+3+addy+addb;ss ''line'Hc7z4TotalPfiles:z0 'totalpfiles.2;ss ''line';20Hc7z4Total Calls:z0 'totalcalls.2;ss ''line';40Hc7z4Olm Waiting:q1 'myolmwait.2;ss ''line';60Hc7z4New Users  :z0 'newusers.2;line=maxport+4+addy+addb;ss ''line'Hc7z4Time Left  :z0 ';if mytimeleft.2<10 then ss 'c9';else if mytimeleft.2<30 then ss 'cb';else ss 'ca';if mytimeleft.2=999 then ss 'ceUNLIM';else ss mytimeleft.2;if mytimeleft<5 then ss 'b1f0z1cfWARNING! Out of Time! (Only 'mytimeleft.2' minutes remaining!) Q=Quit';ss ''line';20Hc7z4Time Online:z0 'mytimeonline.2;ss ''line';40Hc7z4Time Today :z0 'mytimetoday.2;ss ''line';60Hc7z4Time In Mon:z0 'myinprog.2;line=maxport+5+addy+addb;ss ''line'Hc7z4CurrentTime:z0 'curtime.2;ss ''line';40Hc7z4Last Logoff:z0 'lastuser.2;return
  15. REDRAWSCREEN:;ss 'z4cf>26}Press Enter To Continue...q1';getchar;if result='###PANIC' then do;call cleanup;exit;end;ss 'q1H';call ansiclear;ss 'q1f1'titlebar;ss helpline;do port=minport to maxport;call redrawport;end;call redrawboard;return
  16. HELPTEXT:;tr 'f1cfz4            Help File for BBS Monitor by [>Panther<] v'ver' 'date'q1';tr 'c7("cf*c7"=Yes, "cf-c7"=No for those fields) All time units are minutes';tr 'c7Scroll through the list with the up and down arrows or cf+c7 and cf-c7.';tr 'c7Expand or shrink view with left and right arrow keys or cf[c7 and cf]c7.';tr 'cfz5Title Bar:q1c7 This is the information from the ports being monitored.';tr 'cfz4#          :z0c7 Port Number that user has logged onto.';tr 'cfz4*          :z0c7 If the user has an OLM waiting to be read or not.';tr 'cfz4Handle     :z0c7 The user''s handle! c9Red=Femalec7, ccBlue=Male';tr 'cfz4Where      :z0c7 The user''s current location on the BBS.';tr 'cfz4H          :z0c7 The user is hiding from you specifically.';tr 'cfz4*          :z0c7 The user is hiding from everyone on the BBS.';tr 'cfz4U          :z0c7 You are hiding from this user.';tr 'cfz4M          :z0c7 The user is muffling you specifically.';tr 'cfz4*          :z0c7 The user is muffling everyone on the BBS.';tr 'cfz4U          :z0c7 You are muffling this user.';tr 'cfz4C          :z0c7 This user has sent you a chat request.';tr 'cfz4U          :z0c7 You have sent this user a chat request.';tr 'cfz4Logon      :z0c7 How long the user has been online.';tr 'cfz4Idle       :z0c7 Time since the user''s last key press (lurk time).';tr 'cfz4Left       :z0c7 How much time until the user must logoff (ceUNLIMc7=Unlimited).';tr 'cfz4Baud       :z0c7 The user''s connection speed.';tr 'cfz4Cmd        :z0c7 The first 5 characters of the last BBS command the user made.';ss 'More [Yes]? ?1';getuser 70;if result=1 then do;tr 'cfz5Stat Board:q1c7 These are global BBS stats or your personal stats.';tr 'cfz4TotalPfiles:z0c7 The number of external programs running on the BBS right now.';tr 'cfz4Total Calls:z0c7 Total number of calls to the BBS.';tr 'cfz4New Users  :z0c7 The number of new users.';tr 'cfz4Time Left  :z0c7 Amount of time you have left online.';tr 'cfz4Time Online:z0c7 Amount of time you have been online.';tr 'cfz4Time Today :z0c7 Amount of time you have been online today.';tr 'cfz4Time In Mon:z0c7 Amount of time you have been in this program.';tr 'cfz4CurrentTime:z0c7 The current time (Expanded Format).';tr 'cfz4Last User..:z0c7 The handle of the last user that logged off this BBS.';tr 'cfz4Olm Waiting:z0c7 Indicates whether or not you have an OLM waiting (V=View It).';end;return
  17. DRAWHELP:;ss 'q1cf';ss ''maxport+2+addy'H';ss 'ce'maxport+2+addy';77H\!1<1|!1<1|!1<1|!1<1|!1<1|!1<13}Last Command''';ss 'ca'maxport+2+addy';70H`-----.!1<1|!1<1|!1<1|!1<1|!1<12}Baud Rate--''';ss 'ce'maxport+2+addy';64H|!1<1`----------.!1<1|!1<1|!1<11}Time Left-''';ss 'ca'maxport+2+addy';58H|!1<1|!1<1`---------------.!1<10}Time Idle''';ss 'ce'maxport+2+addy';52H|!1<1|!1<1|!1<1`Time Online';ss 'ca'maxport+2+addy';49H|!1<1|!1<1|!1<1|!1<1`You ChatReq''d';ss 'ce'maxport+2+addy';48H|!1<1|!1<1|!1<1|!1<1|!1<1'ChatReq'd You';ss 'ca'maxport+2+addy';46H|!1<1|!1<1|!1<1|!1<1|!1<1|!1<1`You Muffling';ss 'ce'maxport+2+addy';45H|!1<1|!1<1|!1<1|!1<1|!1<1|!1<1|!1<1`Muffling All';ss 'ca'maxport+2+addy';44H|!1<1|!1<1|!1<1|!1<1|!1<1|!1<1|!1<14} Muffling You''';ss 'ce'maxport+2+addy';42H|!1<1|!1<1|!1<1|!1<1|!1<1|!1<11}You Hiding''';ss 'ca'maxport+2+addy';41H|!1<1|!1<1|!1<1|!1<1|!1<11}Hiding All''';ss 'ce'maxport+2+addy';40H|!1<1|!1<1|!1<1|!1<11}Hiding You''';ss 'ca'maxport+2+addy';24H|!1<1`-Where At';ss 'ce'maxport+2+addy';3H|!1<1`-Handle';ss 'ca'maxport+2+addy';2H|!1<1|!1<1`-Olm Waiting (*=Yes,-=No)';ss 'ce'maxport+2+addy'H|!1<1|!1<1|!1<1`-Port Number';ss 'q1cfHWould you like more help [No]? ?0';getuser 70;help=result;if help=1 then do;call helptext;call redrawscreen;end;else do;ss 'z4cf>26}Press Enter To Continue...q1';getchar;if result='###PANIC' then do;call cleanup;exit;end;ss 'q1f1'titlebar;ss helpline;do port=minport to maxport;call redrawport;end;call redrawboard;end;return
  18. ANSICLEAR:;ss '';return
  19. DOSHELL:;cmdmode=1;changewhere 'BBSMon Shell';do while cmdmode=1;query 'n1cfz4BBS Command (Q=Quit):q1 ';cmd=result;if cmd='###PANIC' then do;call cleanup;exit;end;if upper(cmd)='Q'|upper(cmd)='QUIT' then cmdmode=0;else if ~(index(upper(cmd),'WHM')=0) then ss 'You are already in the BBS Monitor!';else do;changewhere 'BBSMon Shell: 'cmd;bbscommand cmd;end;end;changewhere 'BBS Monitor';return
  20. SENDOLM:;ss ''maxport+addy+5'HL';bbscommand 'OLM';ss 'q1f1'titlebar;ss helpline;do port=minport to maxport;call redrawport;end;call redrawboard;return
  21. PAUSE:;arg secs;a=delay(secs*1);return
  22. CLEANUP:;setobject mon;putuser 1101746;setobject more;putuser 1100454;return;SYNTAX: ; ERROR: ; IOERR: ; er=rc' ('errortext(rc)') in line 'sigl;getuser 1311992 ; a=result ; getuser 1311960 ; b=result ; c='"'a||b'"';er='Error Code 'er' of 'c ; transmit er ; logentry er ; bufferflush;call cleanup;exit
  23. CHECKPANIC:;getcarrier ; if result="TRUE" then return;bufferflush;call cleanup;exit;return
  24. INIT:;beep='';CtrlL=' ';return
  25.